package com.neouton.crm.generalPayRecord.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.neouton.common.entity.BaseEntityVO;
import com.neouton.crm.approval.entity.ApprovalVO;
import com.neouton.crm.entity.SysUserEntity;
import com.neouton.crm.managerPayRequest.entity.ManagerPaymentTable;
import com.neouton.crm.pm.entity.PurchaseOrderVO;
import com.neouton.crm.sales.entity.SalesFileRelationVO;
import com.neouton.crm.supplier.entity.SupplierVO;
import com.neouton.crm.transpondEmail.entity.TranspondEmailVO;
import lombok.Data;

import java.io.Serializable;
import java.sql.Timestamp;
import java.util.Date;
import java.util.List;

/**
 * 付款记录
 * @TableName payment_records
 */
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class GeneralPayRecord extends BaseEntityVO implements Serializable {
    /**
     * 付款记录id
     */
    private Integer payRecordsId;
    /**
     * 付款申请id
     */
    private Integer payRequestId;

    private String payRecordName;

    /**
     *采购合同id
     */
    private Integer purchaseOrderId;
    /**
     * 采购名称
     */
    private String purchaseTopic;

    /**
     * 采购单号
     */
    private String purchaseNo;
    /**
     *采购合同期次
     */
    private String planPeriod;
    private List<Integer> planPeriodList;
    private String planPeriodName;

    /**
     * 款项日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date moneyDate;
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Timestamp moneyDateStart;
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Timestamp moneyDateEnd;
    private String moneyDateTime;

    /**
     * 付款金额
     */
    private String paymentMoney;
    private String paymentMoneySmall;
    private String paymentMoneyLarge;

    /**
     * 冲销金额
     */
    private String eliminationMoney;
    private String eliminationMoneySmall;
    private String eliminationMoneyLarge;

    /**
     * 负责人
     */
    // private Integer head;
    private SysUserEntity head;
    private List<Integer> headList;
    private String headName;
    /**
     * 所有人
     */
    // private Integer owner;
    private SysUserEntity owner;
    private List<Integer> ownerList;
    private String ownerName;

    /**
     * 备注
     */
    private String remark;
    /**
     * 开户名
     */
    private String accountName;

    /**
     * 开户行
     */
    private String accountBank;

    private String accountCard;
    /**
     * 付款方式
     */
    private Integer payMethod;
    private List<Integer> payMethodList;
    private String payMethodName;

    /**
     * 收到发票 0.已收票 1.未收票 2.无需收票
     */
//    private Integer receiveInvoice;
    private List<Integer> receiveInvoiceList;
    private String receiveInvoiceName;

    /**
     * 供应商信息
     */
    private SupplierVO supplier;
    /**
     * 客户名称
     */
    private String supplierName;

    private Integer supplierId;

    private PurchaseOrderVO purchaseOrder;

    /**
     * 审批主表ID
     */
    private Integer approvalId;
    private List<Integer> approvalStatusList;
    private String approvalStatusName;

    /**
     * 关联审批记录
     */
    private ApprovalVO approval;

    private List<SalesFileRelationVO> salesFileRelations;

    /**
     * 前端排序标识
     */
    private String orderByColum;

    private String orderByProp;

    private String order;

    private List<ManagerPaymentTable> managerPaymentTables;



    /**
     * 项目名称
     */
    private String projectManageTheme;

    /**
     * 申请原因
     */
    private String askReason;

    /**
     * 审批意见
     */
    private String appReason;
    private String paymentMoneyPage;
    private String eliminationMoneyPage;

    private String paramType;

    private List<Integer> approvalIds;

    private Integer dateOption;

    /**
     * 转发人
     */
    private String sender;
    /**
     * 转发人集合
     */
    private List<SysUserEntity> transpondUsers;

    private List<TranspondEmailVO> transpondEmailVOs;

    private Integer headId;

    private Integer ownerId;
}